package com.zxl.jdk8test;

import java.util.Optional;

/**
 * Optional 不是函数是接口，这是个用来防止NullPointerException异常的辅助类型，这是JDK8中将要用到的重要概念
 * Optional 被定义为一个简单的容器，其值可能是null或者不是null。
 * 在Java 8之前一般某个函数应该返回非空对象但是偶尔却可能返回了null，
 * 而在Java 8中，不推荐你返回null而是返回Optional。
 * @author zxl
 *
 */
public class OptionalTest {
    
    public static void main(String[] args) {
        Person person = null;
        //实例化一个Optional对象，即时参数为null
        Optional<Person> optional = Optional.ofNullable(person);
        System.out.println(optional.isPresent());//false
      //实例化一个Optional对象，参数不能为null
        optional = Optional.of(new Person("小花"));
        optional.ifPresent((p) -> System.out.println(p));
    }

}
